home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / src / Tools / ausay / ausay.c < prev    next >
Encoding:
C/C++ Source or Header  |  1995-05-03  |  1.3 KB  |  86 lines

  1. #include <stdio.h>
  2. #include <audio/audiolib.h>
  3. #include <audio/soundlib.h>
  4.  
  5. #define USAGE        "usage: ausay [ -s server ] [-v vol] [-d directory] message\n"
  6. #ifndef DEFAULT_DIR
  7. #define DEFAULT_DIR    "/usr/local/lib/phonemes"
  8. #endif
  9. #define DEFAULT_VOL    100
  10.  
  11. static void     usage();
  12.  
  13. AuServer *aud;
  14.  
  15. #define OPT_STR "s:v:d:"
  16.  
  17. main(argc, argv)
  18.     int             argc;
  19.     char          **argv;
  20. {
  21.     int             fd, ch;
  22.     int         vol = DEFAULT_VOL;
  23.     char           *dir = (char *) 0;
  24.     char            cp[1024];
  25.     char           *server = NULL;
  26.     extern int    optind;
  27.     extern char    *optarg;
  28.  
  29.     while ((ch = getopt (argc, argv, OPT_STR)) != EOF)
  30.     {
  31.         switch (ch)
  32.         {
  33.         case 'v':
  34.             vol =  atoi(optarg);
  35.             break;
  36.         case 'd':
  37.             dir = optarg;
  38.             break;
  39.         case 's':
  40.             server = optarg;
  41.             break;
  42.         case '?':
  43.         default:
  44.             usage();
  45.         }
  46.     }
  47.     argc -= optind;
  48.     argv += optind;
  49.  
  50.     if (!argc)
  51.         usage();
  52.  
  53.     if (dir == (char *) 0)
  54.         dir = DEFAULT_DIR;
  55.  
  56.     if ((aud = AuOpenServer(server, 0, NULL, 0, NULL, NULL)) == (AuServer *) 0)
  57.     {
  58.         fatal(0, "Cant open server!\n");
  59.         exit(1);
  60.     }
  61.  
  62.     if (speak_load_samples(dir))
  63.         exit(1);
  64.  
  65.     if (vol < 0)
  66.         vol = 0;
  67.  
  68.     speak_volume(vol);
  69.  
  70.     while (argc--)
  71.     {
  72.         speak_string(*argv++);
  73.     }
  74.  
  75.     AuFlush(aud);
  76.     AuCloseServer(aud);
  77.  
  78. }
  79.  
  80. static void
  81. usage()
  82. {
  83.     fprintf(stderr, USAGE);
  84.     exit(1);
  85. }
  86.